package main

import "fmt"

func generate(numRows int) []int {
	//声明二维数组，展示最终的结果
	arr := make([][]int, numRows+1)
	for i := 0; i < numRows+1; i++ {
		//f(i)(x) = f(i-1)(x-1)+f(i-1)(x)
		arr[i] = make([]int, i+1) //为每一个行分配空间
		//每一行的两端都是 1
		arr[i][0] = 1
		arr[i][i] = 1
		//填充杨辉三角的中间部分
		for j := 1; j < i; j++ {
			arr[i][j] = arr[i-1][j-1] + arr[i-1][j]
		}
	}
	return arr[numRows]
}

func main() {
	fmt.Println(generate(3))
}
